﻿using System.Xml.Serialization;
using Renci.Data.Interop.OpenGIS.Gml_32;
using Renci.Data.Interop.OpenGIS.Iso.tc211_2005.gmd;
using Renci.Data.Interop.OpenGIS.Swe_102;

namespace Renci.Data.Interop.OpenGIS.Om_101
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/om/1.0")]
    [System.Xml.Serialization.XmlRootAttribute("Observation", Namespace = "http://www.opengis.net/om/1.0", IsNullable = false)]
    public class ObservationType : AbstractFeatureType
    {
        /// <remarks/>
        public ObservationType()
        {
            this.Xmlns = new XmlSerializerNamespaces();
            //this.Xmlns.Add(string.Empty, "http://www.opengis.net/om/1.0");
            this.Xmlns.Add("gml", "http://www.opengis.net/gml/3.2");
            this.Xmlns.Add("xlink", "http://www.w3.org/1999/xlink");
            this.Xmlns.Add("swe", "http://www.opengis.net/swe/1.0.1");
            this.Xmlns.Add("om", "http://www.opengis.net/om/1.0");
            this.Xmlns.Add("sos", "http://www.opengis.net/sos/1.0");
            this.Xmlns.Add("ows", "http://www.opengis.net/ows/1.1");
            this.Xmlns.Add("ogc", "http://www.opengis.net/ogc");
            this.Xmlns.Add("tml", "http://www.opengis.net/tml");
            this.Xmlns.Add("sml", "http://www.opengis.net/sensorML/1.0.1");
            this.Xmlns.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
            this.Xmlns.Add("ioos", "http://www.noaa.gov/ioos/0.6.1");
        }

        /// <summary>
        /// Gets or sets prefix association with namespaces that are used object serializer.
        /// </summary>
        [XmlNamespaceDeclarations]
        public XmlSerializerNamespaces Xmlns { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("observationMetadata")]
        public MD_Metadata_PropertyType ObservationMetadata { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("samplingTime")]
        public TimeObjectPropertyType SamplingTime { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resultTime")]
        public TimeObjectPropertyType ResultTime { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("procedure")]
        public ProcessPropertyType Procedure { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("resultQuality")]
        public DQ_Element_PropertyType ResultQuality { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("observedProperty")]
        public PhenomenonPropertyType ObservedProperty { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("featureOfInterest")]
        public FeaturePropertyType FeatureOfInterest { get; set; }

        private System.Collections.ObjectModel.Collection<AnyDataPropertyType> _parameter = new System.Collections.ObjectModel.Collection<AnyDataPropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("parameter")]
        public System.Collections.ObjectModel.Collection<AnyDataPropertyType> Parameter { get { return this._parameter; } }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("result")]
        public object Result { get; set; }
    }
}
